﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using Ecommerce.Model;
using System.Configuration;

namespace Ecommerce.Web.Code
{
    public abstract class BasePage : System.Web.UI.Page
    {
        public enum TipoPessoa
        {
            PFI,
            PJU,
            REV
        }

        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            #if DEBUG
            if (!User.Identity.IsAuthenticated)
            {
                /*
                UsuarioModel usuarioModel = new UsuarioModel();
                tb_usu_usuario usuario = usuarioModel.Login("1@1.com", "1");
                Session["usuario"] = usuario;
                FormsAuthentication.SetAuthCookie("1", false);
                */
            }
            #endif
        }

        protected bool UsuarioLogado
        {
            get
            {
                return User.Identity.IsAuthenticated;
            }
        }

        public int IdentificadorUsuarioLogado
        {
            get
            {
                if (Session["usuario"] == null)
                    return 0;
                else
                    return ((tb_pes_pessoa)Session["usuario"]).pes_idt_pessoa;
            }
        }

        //TODO: VERIFICAR SE ESTA É A FOMRMA CORRETA DE OBTER O TIPO DE PESSOA
        protected TipoPessoa TipoUsuarioLogado
        {
            get
            {
                if (!User.Identity.IsAuthenticated)
                    return TipoPessoa.PFI;

                if (Session["usuario"] == null)
                    return TipoPessoa.PFI;

                var pessoa = (tb_pes_pessoa)Session["usuario"];

                if (pessoa.pes_flg_pessoa_fisica)
                    return TipoPessoa.PFI;
                else
                {
                    if (pessoa.tb_pju_pessoa_juridica.tb_rev_revenda != null)
                        return TipoPessoa.REV;
                    else
                        return TipoPessoa.PJU;
                }
            }
        }

        protected int ParcelasCartao
        {
            get
            {
                return int.Parse(ConfigurationManager.AppSettings["parcelasCartao"]);
            }
        }

        protected string CepOrigem
        {
            get
            {
                return ConfigurationManager.AppSettings["cepOrigem"];
            }
        }

    }
}